﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
using AjaxControlToolkit;

namespace spktNhom4DoAnCuoiKy.UserModules
{
    public partial class ConfirmWinSession : System.Web.UI.Page
    {
        string maPhien = null;
        AuctionOnlineDataContext db = new AuctionOnlineDataContext();
        PhienDauGia sd = null;
        string FomatCurrency(double amount)
        {
            NumberFormatInfo nfi = new NumberFormatInfo();
            nfi.CurrencySymbol = "";
            nfi.CurrencyDecimalDigits = 2;
            nfi.CurrencyDecimalSeparator = ".";
            nfi.CurrencyGroupSeparator = ",";

            return String.Format(nfi, "{0:C0}", amount);
        }
        protected void Page_Load(object sender, EventArgs e)
        {

           
            

            mvConfirm.ActiveViewIndex = 1;
          
        
            if (!IsPostBack)
            {
                ddlQuocGia.DataValueField = "MaQuocGia";
                ddlQuocGia.DataTextField = "TenQuocGia";
                ddlQuocGia.DataSource = db.PhiVanChuyenQuocGias.Select(x => new { x.MaQuocGia, x.TenQuocGia, x.PhanTramPhiVanChuyen }).ToList();
                ddlQuocGia.DataBind();
                ddlQuocGia.SelectedIndex = 0;

                 maPhien = Request.QueryString["SessionId"];
                
                sd = db.PhienDauGias.Where(x => x.MaPhien == maPhien).FirstOrDefault();
                if (sd != null)
                {
                    //kiểm tra phiên đã được xác nhận chưa
                    Session.setCurrentAuctionSession(sd);
                    bool isExits = db.LichSuThanhToans.Any(x => x.MaPhien == Session.getCurrentAuctionSession().MaPhien && x.UserThanhToan == Session.getCurrentAuctionSession().NguoiThang);
                    if (isExits)
                    {
                        mvConfirm.ActiveViewIndex = 1;
                        lThongBao.Text = "Phiên đã được xác nhận.";
                    }
                    else
                    {
                        bool isHasWinner = Session.getCurrentAuctionSession().TrangThaiThang.Value == 1;
                        if (isHasWinner)
                        {

                            mvConfirm.ActiveViewIndex = 0;

                            //thong tin san pham
                            lblMoTa.Text = sd.SanPham.MoTa;
                            lblNguonGoc.Text = sd.SanPham.MoTaNguonGoc;
                            lblTinhTrangSanPham.Text = sd.SanPham.TinhTrangSanPham1.MoTaTinhTrang;
                            lblSoLuong.Text = sd.SanPham.SoLuong.ToString();
                            lblTenSanPham.Text = sd.SanPham.TenSanPham;
                            imgAnhPhien.ImageUrl = "~/" + sd.SanPham.HinhAnh;
                            //thong tin các hình thức vận chuyển
                            rblHinhThucGiaoHang.DataTextField = "TenHinhThucVanChuyen";
                            rblHinhThucGiaoHang.DataValueField = "MaHinhThucVanChuyen";
                            rblHinhThucGiaoHang.DataSource = sd.HinhThucVanChuyenHoTros.Select(x => new { MaHinhThucVanChuyen = x.MaHinhThucVanChuyen, TenHinhThucVanChuyen = Session.getResourceManager().GetString(x.HinhThucVanChuyen.MoTa) }).ToList();
                            rblHinhThucGiaoHang.DataBind();
                            rblHinhThucGiaoHang.SelectedValue = "1";
                            rblHinhThucGiaoHang_SelectedIndexChanged(null, null);

                            //thong tin gia san pham
                            lblGiaSanPham.Text = FomatCurrency(sd.GiaThang.Value);
                            if (Session["ChiPhiVanChuyen"] != null)
                                lblSoTienPhaiTra.Text = FomatCurrency(sd.GiaThang.Value + (double)Session["ChiPhiVanChuyen"]);
                            //thong tin xac nhan
                            lblMaPhien.Text = sd.MaPhien;
                            lblNguoiMua.Text = String.Format("{0}@{1}_{2}", sd.NguoiThang, sd.Server.VietTatTenQuocGia.ToUpper(), sd.Server.SoThuTuTram);

                        }
                        else
                        {
                            mvConfirm.ActiveViewIndex = 1;
                            lThongBao.Text = "Phiên không hợp lệ.";
                        }
                    }
                }
                else
                {
                    mvConfirm.ActiveViewIndex = 1;
                    lThongBao.Text = "Không tìm thấy phiên.";
                }


            }

        }

        protected void rblHinhThucGiaoHang_SelectedIndexChanged(object sender, EventArgs e)
        {
            sd = Session.getCurrentAuctionSession();
            if (rblHinhThucGiaoHang.SelectedValue == "1")// nhận tại cửa hàng
            {
                PhanTramPhiVanChuyen.Text = "0 %";
                lblPhiVanChuyen.Text = "0.0";
                lblPhiVanChuyen0.Text = "0.0";
                Session["ChiPhiVanChuyen"] = 0.0;
                if (Session["ChiPhiVanChuyen"] != null)
                {
                    lblSoTienPhaiTra.Text = FomatCurrency(sd.GiaThang.Value + (double)Session["ChiPhiVanChuyen"]);
                    Session["TongChiPhi"] = sd.GiaThang.Value + (double)Session["ChiPhiVanChuyen"];
                }

            }
            else if (rblHinhThucGiaoHang.SelectedValue == "2")//giao hàng
            {
                string quocgia = ddlQuocGia.SelectedValue;
                double phantramphi = db.PhiVanChuyenQuocGias.Where(x => x.MaQuocGia == quocgia).FirstOrDefault().PhanTramPhiVanChuyen.Value;
                PhanTramPhiVanChuyen.Text = String.Format("{0} %", phantramphi);

                if (sd != null)
                {
                    lblPhiVanChuyen.Text = FomatCurrency(sd.GiaThang.Value * phantramphi/100);
                    lblPhiVanChuyen0.Text = FomatCurrency(sd.GiaThang.Value * phantramphi/100);
                    Session["ChiPhiVanChuyen"] = sd.GiaThang.Value * phantramphi/100;
                    if (Session["ChiPhiVanChuyen"] != null)
                    {
                        lblSoTienPhaiTra.Text = FomatCurrency(sd.GiaThang.Value + (double)Session["ChiPhiVanChuyen"]);
                        Session["TongChiPhi"] = sd.GiaThang.Value + (double)Session["ChiPhiVanChuyen"];
                    }

                }
                else {
                    lblPhiVanChuyen.Text = "Không tìm thấy phiên";
                    lblPhiVanChuyen0.Text = "Không tìm thấy phiên";
                }
                

            }
        }

        protected void ddlQuocGia_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (rblHinhThucGiaoHang.SelectedValue != "1")
            {
                string quocgia = ddlQuocGia.SelectedValue;
                sd = Session.getCurrentAuctionSession();
                double phantramphi = db.PhiVanChuyenQuocGias.Where(x => x.MaQuocGia == quocgia).FirstOrDefault().PhanTramPhiVanChuyen.Value;
                PhanTramPhiVanChuyen.Text = String.Format("{0} %", phantramphi);
                if (sd != null)
                {
                    lblPhiVanChuyen.Text = FomatCurrency(sd.GiaThang.Value * phantramphi/100);
                    lblPhiVanChuyen0.Text = FomatCurrency(sd.GiaThang.Value * phantramphi/100);
                    Session["ChiPhiVanChuyen"] = sd.GiaThang.Value * phantramphi/100;
                    

                }
                else
                {
                    lblPhiVanChuyen.Text = "Không tìm thấy phiên";
                    lblPhiVanChuyen0.Text = "Không tìm thấy phiên";
                }
            }
        }

        protected void btnXacNhanTaoMa_Click(object sender, EventArgs e)
        {
            //tạo mã xác nhận

            if (Session.getCurrentAuctionSession() != null)
            {
                //webservice để kiểm tra tồn tại
                bool isExits = db.LichSuThanhToans.Any(x => x.MaPhien == Session.getCurrentAuctionSession().MaPhien && x.UserThanhToan == Session.getCurrentAuctionSession().NguoiThang);
              
                if (!isExits)
                {
                    if (Session.getCurrentAuctionSession() != null)
                    {
                        LichSuThanhToan ls = new LichSuThanhToan();
                        ls.MaPhien = Session.getCurrentAuctionSession().MaPhien;
                        ls.UserThanhToan = Session.getCurrentAuctionSession().NguoiThang;
                        ls.SoTienThanhToan = 0;
                        DateTime d = DateTime.Now;
                        ls.MaGiaoDich = String.Format("{0}{1}{2}{3}{4}{5}{6}{7}_{8}", d.Day, d.Month, d.Year, d.Hour, d.Minute, d.Second, Session.getCurrentAuctionSession().MaPhien.ToLower(), Session.getCurrentAuctionSession().NguoiThang.ToLower(), Session.getCurrentAuctionSession().Server.VietTatTenQuocGia.ToLower());
                        db.LichSuThanhToans.InsertOnSubmit(ls);
                        db.SubmitChanges();
                        lblMaGiaoDich.Text = ls.MaGiaoDich;
                    }
                    else
                    {
                        lblMaGiaoDich.Text = "";
                    }
                }
                else
                {
                    lblMaGiaoDich.Text = db.LichSuThanhToans.Where(x => x.MaPhien == Session.getCurrentAuctionSession().MaPhien && x.UserThanhToan == Session.getCurrentAuctionSession().NguoiThang).FirstOrDefault().MaGiaoDich;
                }
            }
        }

        protected void btnThanhToanNgay_Click(object sender, EventArgs e)
        {
            if (lblMaGiaoDich.Text == "")
            {
                lblConfirmFirst.Visible = true;

                return;
            }
            else
                Response.Redirect(String.Format("~/UserModules/Payment.aspx?c={0}", lblMaGiaoDich.Text));
        }

        protected void btnXacNhan_Click(object sender, EventArgs e)
        {
           
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            PhanTramPhiVanChuyen.Text = "tingfasd";
        }
    }
}